/**
 * @param {number[]} nums
 * @return {boolean}
 */
var canJump = function (nums) {
  //能到达的最远索引
  let maxReach = 0

  //遍历数组索引
  for (let i = 0; i < nums.length; i++) {
    //如果当前索引已经超过最远索引，返回false
    if (i > maxReach) return false
    //更新能到达的最远索引
    maxReach = Math.max(maxReach, i + nums[i])
  }

  //如果遍历过程中没有返回false，那就说明可以到达尾索引，返回true
  return true
};